using Sinacor.UI.Bovespa.Contabil.Communication;
using Sinacor.Infra.UI.Common;
using System.Collections.Generic;

namespace Sinacor.UI.Bovespa.Contabil.Communication.Translator.ModelToDataContract
{
    public class TipoDespesa
    {

        public TipoDespesa() { }

        public Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaChaveRequest ToFiltroTipoDespesaChaveRequest(Model.Parameter.FiltroTipoDespesaChave parameter)
        {
            Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaChaveRequest to = new Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaChaveRequest();
            to.Codigo = parameter.Codigo;
            return to;
        }

        public List<Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaChaveRequest> ToFiltroTipoDespesaChaveRequest(ModelCollection<Model.Parameter.FiltroTipoDespesaChave> parameterList)
        {
            List<Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaChaveRequest> to = new List<Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaChaveRequest>();

            foreach (Model.Parameter.FiltroTipoDespesaChave item in parameterList)
            {
                to.Add(ToFiltroTipoDespesaChaveRequest(item));
            }
            return to;
        }

        public Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaPeriodoRequest ToFiltroTipoDespesaPeriodoRequest(Model.Parameter.FiltroTipoDespesaPeriodo request)
        {
            Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaPeriodoRequest to = new Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaPeriodoRequest();
            to.Codigo = request.Codigo;
            to.Descricao = request.Descricao;
            to.PregaoFinal = request.PregaoFinal;
            to.PregaoInicial = request.PregaoInicial;
            return to;
        }

        public List<Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaPeriodoRequest> ToFiltroTipoDespesaPeriodoRequest(ModelCollection<Model.Parameter.FiltroTipoDespesaPeriodo> parameterList)
        {
            List<Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaPeriodoRequest> to = new List<Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaPeriodoRequest>();

            foreach (Model.Parameter.FiltroTipoDespesaPeriodo item in parameterList)
            {
                to.Add(ToFiltroTipoDespesaPeriodoRequest(item));
            }
            return to;
        }

        public Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaRequest ToFiltroTipoDespesaRequest(Model.Parameter.FiltroTipoDespesa parameter)
        {
            Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaRequest to = new Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaRequest();
            to.Codigo = parameter.Codigo;
            to.Descricao = parameter.Descricao;
            return to;
        }

        public List<Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaRequest> ToFiltroTipoDespesaRequest(ModelCollection<Model.Parameter.FiltroTipoDespesa> parameterList)
        {
            List<Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaRequest> to = new List<Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.TipoDespesa.FiltroTipoDespesaRequest>();
            foreach (Model.Parameter.FiltroTipoDespesa item in parameterList)
            {
                to.Add(ToFiltroTipoDespesaRequest(item));
            }
            return to;
        }

        public Bovespa.Contabil.TipoDespesa.TipoDespesaRequest ToTipoDespesaRequest(Model.TipoDespesa model)
        {
            Bovespa.Contabil.TipoDespesa.TipoDespesaRequest to = new Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.TipoDespesa.TipoDespesaRequest();
            to.Codigo = model.Codigo;
            to.Descricao = model.Descricao;
            return to;
        }

        public List<Bovespa.Contabil.TipoDespesa.TipoDespesaRequest> ToTipoDespesaRequest(ModelCollection<Model.TipoDespesa> modelList)
        {
            List<Bovespa.Contabil.TipoDespesa.TipoDespesaRequest> to = new List<Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.TipoDespesa.TipoDespesaRequest>();
            foreach (Model.TipoDespesa item in modelList)
            {
                to.Add(ToTipoDespesaRequest(item));
            }
            return to;
        }
    }
}